<?php
class ClientesController extends Zend_Controller_Action
{
	protected $_usuarioLogueado = null;
	
	public function init ()
    {
    	
    	if(!Zend_Auth::getInstance()->hasIdentity())  
        {  
            $this->_redirect('/Index/');  
        }
        $this->_usuarioLogueado = Zend_Auth::getInstance()->getIdentity(); 
         
        $this->view->title = "CLIENTES";
        /*$ajaxContext = $this->_helper->getHelper('AjaxContext');
		$ajaxContext->addActionContext('cargueclientedia', 'html');
		$ajaxContext->initContext(); */
        $this->view->baseUrl = $this->getRequest()->getBaseUrl();
    }
    public function indexAction ()
    {
        $tablaDias = new Application_Model_DbTable_Dia();
        $this->view->datosDias = $tablaDias->listarTodos();
    }
    public function cargueclientediaAction ()
    {
        $request = $this->getRequest();
        $diaSemana = $request->getParam('diaSemana', - 1);
        
        try {
        	$this->guardarDiaSemanaSesion($diaSemana);
        } catch (Exception $e) {}
        
        $this->noRenderizarVista();
        try {
            $tablaClientes = new Application_Model_DbTable_Cliente();
            $rows = $tablaClientes->listarPorDia($diaSemana,$this->_usuarioLogueado->id);
            //Ojo en ocasiones toca usar ->toArray(); ejemplo $rows = $tablaClientes->listarTodos();
            Zend_Json::$useBuiltinEncoderDecoder = true;
            $json = Zend_Json::encode($rows);            
            echo $json;
        } catch (Exception $e) {
            echo 'Javier.... ' . $e->getMessage();
        }
    }
    
    public function guardarDiaSemanaSesion($diaSemanaSelected) {
    	$diaSesion = new Zend_Session_Namespace();
        $diaSesion->diaSeleccionado = $diaSemanaSelected;  	
    }
    
    public function infoclienteAction ()
    {
        $this->view->title = "INFO. CLIENTE";
        $tablaClientes = new Application_Model_DbTable_Cliente();
        $_infoCliente = $tablaClientes->get($this->getRequest()->getParam('idCliente', - 1));
        
        $this->guardarClienteEnSesion($_infoCliente);
        
        $this->view->infoCliente = $_infoCliente;
        //Info para la pagina de no compra
        $tablaConceptos = new Application_Model_DbTable_Conceptos();
        $this->view->infoConceptos = $tablaConceptos->listarTodos();
        $this->cargarInformacionNuevoCliente();
    }
    
    function guardarClienteEnSesion($cliente) {

    	$mysession = new Zend_Session_Namespace('CLIENTE');
        $mysession->clienteSelected = $cliente;
        //Elimina los pedidos hechos
    	if(isset($mysession->pedidoItems)){
    		unset($mysession->pedidoItems);
    	}    	
		    	
    }
    
    
    
    public function cargarInformacionNuevoCliente ()
    {
        //Info tipo Negocio
        $tablaTipoNegocio = new Application_Model_DbTable_TipoNegocio();
        $this->view->tipoNegocio = $tablaTipoNegocio->listarTodos();
        //info condiciones
        $tablaCondiciones = new Application_Model_DbTable_Condicion();
        $this->view->condiciones = $tablaCondiciones->listarTodos();
        //Info barrios.... a futuro buscar la forma de hacer departamentos y ciudades.
        $tablaBarrios = new Application_Model_DbTable_Barrio();
        $this->view->barrios = $tablaBarrios->listarTodos();
    }
    public function guardarconceptonocompraAction ()
    {
        $resp = '';
        try {
            $idCliente = $this->getRequest()->getParam('idCliente', - 1);
            $idConcepto = $this->getRequest()->getParam('idConcepto', - 1);
	        $latitud = $this->getRequest()->getParam('latitud', null);
	        $longitud = $this->getRequest()->getParam('longitud', null);
	        $precision = $this->getRequest()->getParam('precision', null);
                    
            $data = array('cliente_id' => $idCliente, 
            'idconcepto' => $idConcepto, 
            'idusuario' => $this->_usuarioLogueado->id,
            'latitud' => $latitud,
	        'longitud' => $longitud,
	        'precision' => $precision);
            
            $tablaPedidos = new Application_Model_DbTable_Pedido();
            $idPedido = $tablaPedidos->insert($data);
            
		    $tablaRutas = new Application_Model_DbTable_Ruta();		    
		    $dia = $this->getDiaSeleccionado();		    	
		    $tablaRutas->actualizarInfoRuta($dia, $idCliente, $this->_usuarioLogueado->id, Application_Model_DbTable_Ruta::NO_COMPRA_ATENDIDO);
		    	            
            $this->noRenderizarVista();
            $resp = 'OK';
            echo json_encode(array('resp' => $resp));
        } catch (Exception $e) {
            $resp = htmlentities($e->getMessage());
            echo json_encode(array('resp' => $resp));
            exit();
        }
    }
    
	public function getDiaSeleccionado() {
		$ns = new Zend_Session_Namespace();
		if(isset($ns->diaSeleccionado)){
		  return  $ns->diaSeleccionado;
		}else{
		  return -1;
		}
	}    
    
    public function crearclienteAction ()
    {
        $resp = '';
        try {
            $this->noRenderizarVista();
            $tablaClientes = new Application_Model_DbTable_Cliente();
            $datosCliente = array(
            'razon_social' => $this->getRequest()->getParam('razon_social'), 
            'nit' => $this->getRequest()->getParam('nit'), 
            'nombre_cliente' => $this->getRequest()->getParam('nombre_cliente'), 
            'razon_social' => $this->getRequest()->getParam('razon_social'), 
            'direccion' => $this->getRequest()->getParam('direccion'), 
            'telefono' => $this->getRequest()->getParam('telefono'), 
            'barrio_id' => $this->getRequest()->getParam('barrio_id'), 
            'tipo_negocio_id' => $this->getRequest()->getParam(
            'tipo_negocio_id'), 
            'id_condicion' => $this->getRequest()->getParam('id_condicion'), 
            'dane' => $this->getRequest()->getParam('dane', '0'), 
            'zona' => $this->getRequest()->getParam('zona', '08'));
            $idCliente = $tablaClientes->insert($datosCliente);
            
            $resp = 'OK';
            echo json_encode(
            array('resp' => $resp, 'newIdCliente' => $idCliente));
        } catch (Exception $e) {
            $resp = htmlentities($e->getMessage());
            echo json_encode(array('resp' => $resp));
            exit();
        }
    }
    function noRenderizarVista ()
    {
        //esta accion no usara layout.phtml
        $this->_helper->layout->disableLayout();
        //esta accion no renderizara su contenido
        $this->_helper->viewRenderer->setNoRender();
    }
}









